#define _CRT_SECURE_NO_WARNINGS 1

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<math.h>

//union D
//{
//	int d1;
//	float d2;
//}d;

//int main()
//{
//	d.d1 = 10;
//	printf("%p\n", &d);
//	printf("%p\n", &d.d1);
//	printf("%p\n", &d.d2);
//	printf("%d\n", d.d2);
//	return 0;
//}


//enum weekday
//{
//	sun,
//	mon = 3,
//	tue,
//	wed
//};
//
//struct st
//{
//	int* p;
//	int i;
//	char a;
//};
//
//int main()
//{
//	printf("%d\n", sizeof(struct st));
//	return 0;
//}


//int main()
//{
//	char arr[2][4];
//	strcpy(arr[0], "you");
//	strcpy(arr[1], "me");
//	arr[0][3] = '&';
//	printf("%s \n", arr);
//	return 0;
//}

//int change(char* str, int n, int len)
//{
//    int i = 0;
//    for (i = n + 1; i < len; i++)
//    {
//        if (str[i] != str[n])
//        {
//            break;
//        }
//    }
//    return i - n;
//}
//
//char* compressString(char* S) {
//    int len = strlen(S);
//    char* arr = (char*)malloc(sizeof(char) * len * 2 + 1);
//    int j = 0;
//    for (int i = 0; i < len; i++)
//    {
//        int ret = change(S, i, len);
//        arr[j++] = S[i];
//        if (ret > 9)
//        {
//            int count = 0;
//            int n = ret;
//            while (n)
//            {
//                count++;
//                n /= 10;
//            }
//            i += ret - 1;
//            while (ret >= 0)
//            {
//                int z = pow(10, --count);
//                arr[j++] = ret / z + '0';
//                if (count <= 0)
//                {
//                    break;
//                }
//                ret %= z;
//            }
//        }
//        else
//        {
//            arr[j++] = ret + '0';
//            i += ret - 1;
//        }
//    }
//    arr[j] = '\0';
//    int len1 = strlen(arr);
//    if (len <= len1)
//        return S;
//    else
//    return arr;
//}

//int main()
//{
//    char arr[] = { "rrrrLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLvvvvvvvvvvvKKKKKKKKKKKKKKiiiiiiiiiiiiiiiiiiiiiiiiiiiiZZZZZZZZZZZZZZZZZZZIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIoooooooooooooooooooooooooooooooooooobbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbvvvvvvvvvvvvvvvvvvvvvvvllllllllllllllllllllllllllllllllllllllllBBBBBBBKKKKKKKKKKKKKKfffffffffffffffffffffffffffffffffffDDDDDDDDDDDDDDDDDDDDDDDDDDDsssssssssssssssssssssssssssssssssssssssNNNNNZZZZZZZZZZZZZZZZZZZZZZZZZZNNNNNNNNNNDDDDDDDDDDDDDDDTTTTT" };
//    printf("%s ",compressString(arr));
//    return 0;
//}

int exchangeBits(int num) {
    int left = num & 0x55555555;
    int right = num & 0xAAAAAAAA;
    left <<= 1;
    right >>= 1;
    int ans = left | right;
    return ans;
}

int main()
{
    printf("%d ",exchangeBits(3));
    return 0;
}